home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
utils
/
gn2v101
/
gnoom2.doc
< prev
next >
Wrap
Text File
|
1995-04-14
|
17KB
|
477 lines
G N O O M I I
The sprite editor
Version 1.01 - Apr. 1995
written by Nikolai Soumarokov
* * *
This program was written using the excellent XLIB library by
Themie Gouthas. If you don't have it, get it now. It's really
great.
=======================================================================
DISTRIBUTION
=======================================================================
This program is Public Domain. You are encouraged to make
copies of the program, to give it to other people, to upload
it to FTP cites and to BBS's, to put it on CD-ROMs, etc., as
long as you distribute the program in its original form, that
is you distribute all the program files together and do not modify
them in any way. The program files are:
GNOOM2.EXE
GNOOM2.DOC
START.BAT
6X8B.FNT
DEFAULT.PAL
TITLE.PAL
TITLE.SCR
TITLE.EXE
TITLE.GN2
Under no circumstances is this program to be sold. No payment
to the author is required for using this software. I would
appreciate, however, if you send me your comments and suggestions
or simply a postcard or a fax. Your feedback will help me make
this program better and will also support my further programming
efforts. Also, if you write a program using GNOOM II, I would
appreciate a copy. See the end of this document for how to
contact me.
Finally, GNOOM II is provided AS IS. The author specifically
disclaims any responsibility for any loss of profit or any
incidental, consequential or other damages. I did not program
GNOOM II to do anything harmful, but if something happens, I
am not responsible for that. Also, while the program works
fine on my PC I do not guarantee it will work on other machines.
=======================================================================
OVERVIEW
=======================================================================
GNOOM II is, well... a sprite editor. The thing is, I needed
a sprite editor to write my own games. I looked through several
CD-ROMs and found 4-5 shareware programs. Some of them were not
bad at all, but they just didn't have the features I needed.
(if you're an author of a really powerful sprite editor, sorry -
- I might have missed your program). OK, some features that make
GNOOM II different are the following:
- It works in the 320x240 mode. Why? Because I think it's better
than standard 320x200. For example, if you draw a circle in
320x200, you get an ellipse. In 320x240 it really looks like
a circle. This does not mean, of course, that the games you
create using GNOOM will have to work in the same resolution.
- It supports scaling and rotation of sprites.
- It supports up to 24 sprites and stores all of them in one file.
- The sprites can have variable size (from 4x4 up to 64x64).
- It supports up to 100 frames of animation.
- It has all the standard drawing tools (line, circle, box, etc.)
- It includes user-defined undo.
- It allows you to paste while preserving the background.
=======================================================================
REQUIREMENTS
=======================================================================
- 486SX (The program is not well-optimized for speed; it
might work rather slowly on other systems. On the other
hand, it might not -- I haven't tested! But after all, if
you write games, you do have at least a DX2, don't you?)
- VGA
- Two- or three- button mouse (If your mouse has only one button,
you've probably got a Mac :))
- 400K RAM (Maybe less -- I didn't really test)
=======================================================================
HOW TO START
=======================================================================
Run START.BAT, or GNOOM2.EXE to skip introductory screens.
=======================================================================
HOW TO END
=======================================================================
I know on my own experience that nothing frustrates the user as
much as the absence of an easy way to quit a program. So, I explain
this at the very beginning: to quit, press ALT and Q or point at
the "Q" button and press both mouse buttons simultaneously.
=======================================================================
CONTROLS
=======================================================================
The program can be controlled entirely with the mouse. Both mouse
buttons are used, as well as the combination of both (you need to
press the right one first, and then, while holding it, the left
one). Almost every command has a keyboard shortcut, yet the mouse
is essential for drawing and some other operations. The following
is the complete list of all commands with detailed descriptions:
Abbreviations used: LMB - left mouse button
RMB - right mouse button
BMB - both mouse buttons
K - keyboard shortcut
THE SIZE LOCK (A BOX IN THE TOP LEFT CORNER):
LMB - toggle the lock on/off
K - ` or ~ (on most keyboards the key under Esc)
When you start the program, this lock is unlocked, so
that you can select the size of the sprite. To begin
drawing, YOU MUST LOCK IT.
SIZE SCROLL BARS (TO THE RIGHT AND BELOW THE SIZE LOCK):
LMB - change the sprite size
If you change the sprite size after drawing the sprites,
the sprites will be cropped.
PALETTE (COLOR BOXES IN THE TOP RIGHT PART OF THE SCREEN):
LMB - change the current color
BMB - change the color of the mouse pointer
R, G, B
LMB - toggle the palette control lock
Without unlocking these you cannot change the RGB
components of the current color.
< AND > OR SCROLL BARS NEXT TO R, G, AND B
LMB - change RGB components of the current color
PALETTE NAME
LMB - change it
K - ? (shift + /)
SPRITE NAME
LMB - change it
K - /
ANY OF THE 9 TOOLS
LMB - select it
K - F1..F9
The tools are (from left to right): point mode, line,
ellipse, filled ellipse, rectangle, filled rectangle,
fill, cut/copy, paste.
EDITING AREA
For all the tools except cut/copy and paste:
LMB - apply the tool with the current color
RMB - apply the tool with the background color
BMB - set the current color to the color of the dot
under the pointer
For cut/copy tool:
LMB - copy
RMB - cut
For paste tool:
LMB - normal paste
RMB - paste while preserving the background
ARROWS UP, DOWN, LEFT, AND RIGHT
LMB - Scroll the sprite; the line that disappears on one
side, appears on the other
K - arrow keys
BMB - Scroll the sprite; the line that disappears on one
side is lost
K - CTRL + arrow keys
BI-DIRECTIONAL ARROWS
LMB - flip the sprite
K - ALT + arrow keys
90-DEGREE ROTATE BUTTONS
LMB - rotate the sprite is its width and height are equal
K - Home/PgUp
BMB - rotate any sprite; some parts might be lost
K - CTRL + Home/PgUp
Warning: this command rotates the sprite around its corner.
If you want to rotate the sprite around its center point,
use the rotate ("ROT") command.
< > ABOVE "ROT"
LMB - change the degree of the next sprite rotation
(in 15 degree steps)
K - < >
< > ABOVE "SC"
LMB - change the percentage of the next scaling (in 5% steps)
K - [ ]
H AND V BUTTONS
LMB - toggle horizontal or vertical scaling
K - H V
UNDO BUTTON
LMB - undo the last operation
K - ESC
USER BUTTON
LMB - restore the sprite from the user-defined undo buffer
K - U
RMB - save the current sprite into the user-defined undo
buffer
K - ALT + U
ANIMATE, SWAP, AND COPY BUTTONS
LMB - switch to normal, animate, swap, or copy modes
K - A S C
R AND P BUTTONS AT THE BOTTOM OF THE SCREEN (ANIMATE MODE)
LMB - toggle reverse and bi-directional frame order
for animations
K - End PgDn
< > UNDER "FRAME" (ANIMATE MODE)
LMB - change the current frame
K - < >
< > UNDER "SPEED" (ANIMATE MODE)
LMB - change animation speed
K - [ ]
THE PREVIEW BOX (ANIMATE MODE)
LMB - copy the current sprite to the current frame
K - ENTER
START BUTTON (ANIMATE MODE)
LMB - continuous animation until the button is pressed
again
K - SPACE
RMB - continuous animation until the button is released
ONE OF THE 4 FRAMES (ANIMATE MODE)
LMB - set the current sprite to the one in the frame
K - ALT + 1 2 3 4
RMB - delete the frame
K - ALT + 5 6 7 8
ONE OF THE 24 SPRITE BOXES (TO THE RIGHT OF THE PREVIEW BOX)
LMB - in normal mode: set the current sprite
in copy mode: copy the current sprite to the one
selected
in swap mode: swap the current sprite with the
one selected
K - sprites 1..12: 1 2 3 4 5 6 7 8 9 0 - =
sprites 13..24: SHIFT + 1 2 3 4 5 6 7 8 9 0 - =
RMB - preview the sprite: display it in the preview box
while the button is pressed
CURRENT COLOR BOX (UNDER THE EDITING AREA)
BMB - reverse screen colors (i.e. swap black and white)
K - R
CLR BUTTON
BMB - clear the current sprite
K - X
ROT BUTTON
BMB - rotate the current sprite
K - ALT + R
Normally, to create rotation effect, you would draw the
sprite, then make several copies of it, and then rotate
each of the copies by increasing angle. ROTATING TWICE
BY 45 DEGREES IS NOT THE SAME AS ROTATING ONCE BY 90
DEGREES!
SC BUTTON
BMB - scale the current sprite
K - ALT + S
The remark for the "ROT" button applies here as well.
SAV BUTTONS
BMB - save palette or sprites
K - ; to save sprites or SHIFT + ; (:) to save palette
Files are created in the current directory
LOAD BUTTONS
BMB - load palette or sprites
K - ' to load sprites or SHIFT + ' (") to load palette
Files are read from the current directory
D BUTTON
BMB - load the default palette
K - ALT + D
N BUTTON
BMB - erase all the sprites and start from scratch
K - ALT + N
Q BUTTON
BMB - quit the program; all the changes will be lost
K - ALT + Q
O BUTTON
BMB - "optimize" -- remove unnecessary black areas from
the sprites if such areas exist
K - ALT + O
... Hope I didn't miss anything ...
=======================================================================
.GN2 FILE FORMAT
=======================================================================
It is the simplicity itself:
1st byte: number of sprites (1..24) N
2nd byte: width of the sprite (4..64) w
3d byte: height of the sprite (4..64) h
Then go N*h*w bytes, each of which represents a color of one pixel.
So, to read sprites' data you will need something like this:
OPEN THE FILE
READ N
READ W
READ H
FOR I = 0 TO N-1
FOR Y = 0 TO H-1
FOR X = 0 TO W-1
READ Z
SPRITE[I][Y*W+X] = Z
NEXT X
NEXT Y
NEXT I
Please note that the row comes first, and the column second.
=======================================================================
QUESTIONS AND ANSWERS
=======================================================================
Because I don't have any feedback from users at the moment, I have
to invent some questions myself.
1. Why is it called GNOOM II? Was there GNOOM I?
Yes, there was GNOOM I and you can probably still find it (but
I doubt very much). It worked in glorious 16-color EGA mode,
had no mouse support, and no other way to draw except dot-by-dot.
All in all, it's best be forgotten about.
2. What's wrong with this program that you do not ask money
for it?
Well... Nothing really, at least as far as I know. You see, I
mentioned already that I had been looking for a sprite editor for
quite a while already, and none of the products I came across
had the features I needed. All of them were shareware, though --
from $15 to $30 and above. I am quite sure that there will be
many people who will not find some useful features in GNOOM II;
this program is far from perfect, after all. If GNOOM II were
written by someone else, I would like to use it, but I would not
like to register. So why expecting someone else to do this?
3. I have started the program, but I cannot draw! Many other
functions don't seem to work either.
Click on the small box in the top left corner of the screen
and try again.
4. The program displays the title screens, but then crashes. Why
is that?
The title screens use the standard VGA 320x200 resolution.
The program itself uses the resolution of 320x240. Although
this resolution is supposed to work on any VGA card, it
might be that your particular card or computer is an exception.
Sorry if it is like that.
5. I have created some beautifully animated sprites. How do I
write a game now?
You sit and program ;). Really, GNOOM II is not a game-
developing system, but merely a tool for editing sprites.
The actual programming is up to you.
6. Can I use the sprites created with GNOOM II in a resolution
other than 320x240?
Yes. Again, it all depends on how you program your game.
GNOOM II only helps you to draw the sprites and to test the
animation.
7. Is it possible to rotate a sprite in less than 15-degree steps?
No. I did not think that was necessary. Anyway, if you think
it is, tell me -- I'll change this in the future versions.
8. Can I edit sprites bigger than 64x64?
No, but why do you need that? The purpose of GNOOM II is to
allow editing small images; for large images you can use any
graphics package. Alternatively, you can combine two or more
sprites created with GNOOM II together in your program.
9. I try to make an 8-frame rotation of a sprite, but each
subsequent frame looks worse and worse; the last one is just
a mess of pixels. Why?
Because you rotate the same sprite several times. The right
way to do rotations is to make 8 copies of the sprite and then
rotate the copy #2 by 45 degrees, the copy #3 by 90 degrees
and so on. Note, however, that the rotation is not perfect; you
will probably need to make some minor corrections afterwards.
10. What does "gnoom" mean?
Nothing. I've just picked a word at random. One guess: gnoom is
a mutant gnome.
=======================================================================
UPDATES AND NEW VERSIONS
=======================================================================
I do not plan any future versions at the moment, but as I start
receiving comments I will try to make corrections of possible bugs
as well as implement useful suggestions. I will not be able to
send updates individually, but if an updated version becomes
available, you will most likely find it at the same site where
you have found the original. Search for the file starting with
GN2V followed by a three-digit version number.
Update History:
v. 1.00, January 1995 - first release
v. 1.01, April 1995 - corrected the bug that caused the program
to fill empty sprites with random patterns
when the "flood fill" tool was used, and
also sometimes made the system "hang" upon
exit from the program.
=======================================================================
HOW TO CONTACT ME
=======================================================================
Please, please, please, let me know how you liked GNOOM II. If
you don't contact me, I will assume that no one is really
interested and I have wasted my time programming this.
There are three ways to reach me, in order of preference:
- fax. The number in Austria is (0222) 238-77-44. Please do not
write in German, I don't know it!!
- mail. The address is:
Nikolai Soumarokov
Zschokkegasse 91/5/25
1220 Vienna, Austria
- phone. The number is the same as fax. This method is the least
preferred of all, since you can normally reach me only between
1800-2300 CET, and even at this time not always; sometimes I
study at the university in the evenings.
OK, enough for now. Have fun!